home *** CD-ROM | disk | FTP | other *** search
/ Aminet 28 / Aminet 28 (1998)(GTI - Schatztruhe)[!][Dec 1998].iso / Aminet / dev / misc / gms_dev.lha / GMSDev / Includes / graphics / blitter.h < prev    next >
Encoding:
C/C++ Source or Header  |  1998-10-23  |  18.3 KB  |  459 lines

  1. #ifndef GRAPHICS_BLITTER_H
  2. #define GRAPHICS_BLITTER_H TRUE
  3.  
  4. /*
  5. **  $VER: blitter.h
  6. **
  7. **  Blitter Definitions
  8. **
  9. **  (C) Copyright 1996-1998 DreamWorld Productions.
  10. **      All Rights Reserved
  11. */
  12.  
  13. #ifndef DPKERNEL_H
  14. #include <dpkernel/dpkernel.h>
  15. #endif
  16.  
  17. #define BlitModVersion  3
  18. #define BlitModRevision 1
  19.  
  20. /***************************************************************************
  21. ** Bitmap Object.
  22. */
  23.  
  24. #define VER_BITMAP  3
  25. #define TAGS_BITMAP ((ID_SPCTAGS<<16)|ID_BITMAP)
  26.  
  27. typedef struct Bitmap {
  28.   struct Head Head;        /* [00] Standard structure header */
  29.   APTR   Data;             /* [12] Pointer to bitmap data area */
  30.   WORD   Width;            /* [16] Width */
  31.   WORD   ByteWidth;        /* [18] ByteWidth */
  32.   WORD   Height;           /* [20] Height */
  33.   WORD   Type;             /* [22] Screen type */
  34.   LONG   LineMod;          /* [24] Line differential */
  35.   LONG   PlaneMod;         /* [28] Plane differential */
  36.   struct Head    *Parent;  /* [32] Bitmap owner */
  37.   struct Restore *Restore; /* [36] Restore list for this bitmap, if any */
  38.   LONG   Size;             /* [40] Total size of the bitmap in bytes */
  39.   LONG   MemType;          /* [44] Memory type to use in allocation */
  40.   WORD   Planes;           /* [48] Amount of planes */
  41.   WORD   prvRes1;          /* [50] Reserved */
  42.   LONG   AmtColours;       /* [52] Maximum amount of colours available */
  43.   LONG   *Palette;         /* [56] Pointer to the Bitmap's palette */
  44.   LONG   Flags;            /* [60] Optional flags */
  45.   LIBPTR void (*DrawUCPixel)(mreg(__a0) struct Bitmap *, mreg(__d1) WORD X, mreg(__d2) WORD Y, mreg(__d3) LONG Colour);
  46.   LIBPTR void (*DrawUCRPixel)(mreg(__a0) struct Bitmap *, mreg(__d1) WORD X, mreg(__d2) WORD Y, mreg(__d3) LONG RGB);
  47.   LIBPTR LONG (*ReadUCPixel)(mreg(__a0) struct Bitmap *, mreg(__d1) WORD X, mreg(__d2) WORD Y);
  48.   LIBPTR LONG (*ReadUCRPixel)(mreg(__a0) struct Bitmap *, mreg(__d1) WORD X, mreg(__d2) WORD Y);
  49.   LIBPTR void (*DrawPen)(mreg(__a0) struct Bitmap *, mreg(__d1) WORD X, mreg(__d2) WORD Y);
  50.   LIBPTR void (*PenUCPixel)(mreg(__a0) struct Bitmap *, mreg(__d1) WORD X, mreg(__d2) WORD Y);
  51.  
  52.   /*** Private fields below ***/
  53.  
  54.   WORD   prvAFlags;        /* Allocation flags */
  55.   LONG   *prvPalette;      /* Allocated palette pointer */
  56.   LONG   prvBytePos;       /* Read/Write position */
  57.   LONG   prvPen;           /* Pen colour */
  58.   WORD   prvPenRadius;     /* Pen radius */
  59. } OBJBitmap;
  60.  
  61. #define BMA_Data         (TAPTR|12)
  62. #define BMA_Width        (TWORD|16)
  63. #define BMA_Height       (TWORD|20)
  64. #define BMA_Type         (TWORD|22)
  65. #define BMA_Size         (TLONG|40)
  66. #define BMA_MemType      (TLONG|44)
  67. #define BMA_Planes       (TWORD|48)
  68. #define BMA_AmtColours   (TLONG|52)
  69. #define BMA_Palette      (TAPTR|56)
  70. #define BMA_Flags        (TLONG|60)
  71. #define BMA_DrawUCPixel  (TAPTR|64)
  72. #define BMA_DrawUCRPixel (TAPTR|68)
  73. #define BMA_ReadUCPixel  (TAPTR|72)
  74. #define BMA_ReadUCRPixel (TAPTR|76)
  75. #define BMA_DrawPen      (TAPTR|80)
  76. #define BMA_PenUCPixel   (TAPTR|84)
  77.  
  78. /***************************************************************************
  79. ** Bitmap Types
  80. */
  81.  
  82. #define INTERLEAVED 1    /* Notice that these are numbers, not flags */
  83. #define ILBM        1
  84. #define PLANAR      2
  85. #define CHUNKY8     3
  86. #define CHUNKY16    4    /* %RRRRRGGG.GGGBBBBB */
  87. #define CHUNKY32    5    /* $AA.RR.GG.BB */
  88.  
  89. #define TRUECOLOUR  CHUNKY32
  90.  
  91. /***************************************************************************
  92. ** Bitmap Flags.
  93. */
  94.  
  95. #define BMF_BLANKPALETTE 0x00000001  /* For a blank/black palette */
  96. #define BMF_EXTRAHB      0x00000002  /* Extra half brite */
  97. #define BMF_HAM          0x00000004  /* HAM mode */
  98.  
  99. /***************************************************************************
  100. ** Pen shapes.
  101. */
  102.  
  103. #define PSP_CIRCLE 1
  104. #define PSP_SQUARE 2
  105. #define PSP_PIXEL  3
  106.  
  107. /**************************************************************************/
  108.  
  109. struct RGB {
  110.   BYTE  Alpha;
  111.   UBYTE Red;
  112.   UBYTE Green;
  113.   UBYTE Blue;
  114. };
  115.  
  116. struct HSV {
  117.   WORD Hue; /* Between 0 and 359 */
  118.   WORD Sat; /* Between 0 and 100 */
  119.   WORD Val; /* Between 0 and 100 */
  120. };
  121.  
  122. struct Palette {
  123.   LONG ID;           /* PALETTE_ARRAY */
  124.   LONG AmtColours;   /* Amount of Colours */
  125.   LONG Colour[256];  /* RGB Palette */
  126. };
  127.  
  128. struct RGBPalette {
  129.   LONG ID;                 /* PALETTE_ARRAY */
  130.   LONG AmtColours;         /* Amount of Colours */
  131.   struct RGB Col[256];  /* RGB Palette */
  132. };
  133.  
  134. #define PALETTE_ARRAY ((ID_PALETTE<<16)|01)
  135.  
  136. #define DecRGB(r,g,b) ((r<<16)|(g<<8)|(b))
  137.  
  138. #define COL_Black        DecRGB(0,0,0)
  139. #define COL_White        DecRGB(255,255,255)
  140. #define COL_BrightRed    DecRGB(255,0,0)
  141. #define COL_BrightGreen  DecRGB(0,255,0)
  142. #define COL_BrightBlue   DecRGB(0,0,255)
  143. #define COL_Grey         DecRGB(128,128,128)
  144. #define COL_LightGrey    DecRGB(192,192,192)
  145. #define COL_DarkGrey     DecRGB(64,64,64)
  146.  
  147. /***************************************************************************
  148. ** Restore Object.
  149. */
  150.  
  151. #define VER_RESTORE  1
  152. #define TAGS_RESTORE ((ID_SPCTAGS<<16)|ID_RESTORE)
  153.  
  154. typedef struct Restore {
  155.   struct Head Head;      /* Standard header */
  156.   WORD   Buffers;        /* Amount of screen buffers - 1, 2 or 3 */
  157.   WORD   Entries;        /* Amount of entries 1 ... 32k */
  158.   struct Head *Owner;    /* Owner of the restorelist, ie bitmap */
  159.  
  160.   /*** Private fields below ***/
  161.  
  162.   struct RstEntry *List1;
  163.   struct RstEntry *List2;
  164.   struct RstEntry *List3;
  165.   struct RstEntry *ListPos1;
  166.   struct RstEntry *ListPos2;
  167.   struct RstEntry *ListPos3;
  168. } OBJRestore;
  169.  
  170. /**** This structure is -completely- private ***/
  171.  
  172. struct RstEntry {
  173.   struct RstEntry *Next;  /* Next restore entry in the chain */
  174.   struct RstEntry *Prev;  /* Previous restore enty in the chain */
  175.   APTR   Bob;             /* Bob structure belonging to the restore [*] */
  176.   APTR   Address;         /* Screen pointer (top of screen) [*] */
  177.   APTR   Storage;         /* Background storage or NULL */
  178.   APTR   Control;         /* Controls from the lookup table */
  179.   APTR   ConMask;         /* The control mask to use */
  180.   WORD   Modulo1;         /* Modulo C */
  181.   LONG   Modulo2;         /* Modulos A/D */
  182.   WORD   BlitWidth;       /* [*] */
  183.   WORD   BlitHeight;      /* [*] */
  184. };
  185.  
  186. #define RSA_Buffers (12|TWORD)
  187. #define RSA_Entries (14|TWORD)
  188. #define RSA_Owner   (16|TAPTR)
  189.  
  190. /***************************************************************************
  191. ** Bob Object.
  192. */
  193.  
  194. #define VER_BOB  1
  195. #define TAGS_BOB ((ID_SPCTAGS<<16)|ID_BOB)
  196.  
  197. typedef struct  FrameList {
  198.   WORD  XCoord;
  199.   WORD  YCoord;
  200. } OBJFrameList;
  201.  
  202. typedef struct Bob {
  203.   struct Head Head;             /* [00] Standard structure header */
  204.   LONG   emp1;                  /* [12] */
  205.   LONG   emp2;                  /* [16] */
  206.   struct FrameList *GfxCoords;  /* [20] Pointer to graphic frame coordinates */
  207.   WORD   Frame;                 /* [24] Current frame */
  208.   WORD   emp3;                  /* [26] */
  209.   WORD   Width;                 /* [28] Width in pixels */
  210.   WORD   ByteWidth;             /* [30] Width in bytes */
  211.   WORD   XCoord;                /* [32] To X pixel */
  212.   WORD   YCoord;                /* [34] To Y pixel */
  213.   WORD   Height;                /* [36] Height in pixels */
  214.   WORD   ClipLX;                /* [38] Left X border */
  215.   WORD   ClipTY;                /* [40] Top Y border */
  216.   WORD   ClipRX;                /* [42] Right X border */
  217.   WORD   ClipBY;                /* [44] Bottom Y border */
  218.   WORD   FPlane;                /* [46] 1st Plane to blit to (planar only) */
  219.   WORD   Planes;                /* [48] Amount of planes */
  220.   WORD   PropHeight;            /* [50] Expected height of source bitmap */
  221.   WORD   PropWidth;             /* [52] Expected width of source bitmap */
  222.   WORD   Buffers;               /* [54] Relevant only to restore mode */
  223.   LONG   PlaneSize;             /* [56] Size of source plane (planar only) */
  224.   LONG   Attrib;                /* [60] Attributes like CLIP and MASK */
  225.   struct Bitmap *SrcBitmap;     /* [64] Source Bitmap */
  226.   WORD   MBReserved1;           /* [68] Reserved, in use by MBob */
  227.   WORD   emp4;                  /* [70] */
  228.   APTR   Source;                /* [72] Pointer to source object */
  229.   APTR   *DirectGfx;            /* [76] Pointer to direct frame list */
  230.   struct Bitmap    *DestBitmap; /* [80] Destination Bitmap */
  231.   struct FrameList *MaskCoords; /* [84] Pointer to mask frame coordinates */
  232.   APTR   *DirectMasks;          /* [88] Pointer to direct frame list */
  233.   struct Bitmap *MaskBitmap;    /* [92] */
  234.   WORD   AmtFrames;             /* [96] Amount of frames in frame/direct list */
  235.  
  236.   /*** Private fields start now ***/
  237.  
  238.   WORD   prvStoreSize;       /* 4/8/12 Sizeof one store entry (MBob's) */
  239.   APTR   prvStoreBuffer;     /* A/B/C [0/4/8] storage pointer (MBob's) */
  240.   WORD   prvStoreMax;        /* Maximum store position */
  241.   APTR   prvStoreMemory;     /* Master storage pointer (for the freemem) */
  242.   WORD   prvStoreCount;      /* Counter for store, 0, 4, 8 */
  243.   BYTE   *prvStoreA;         /* Storage buffer 1 */
  244.   BYTE   *prvStoreB;         /* Storage buffer 2 */
  245.   BYTE   *prvStoreC;         /* Storage buffer 3 */
  246.   APTR   prvDrawRoutine;     /* Routine for drawing/clearing/storing */
  247.   APTR   prvClearRoutine;    /* Routine for clearing */
  248.   APTR   prvRestoreRoutine;  /* Routine for restoring/clearing */
  249.   APTR   prvHeightRoutine;   /* Replaces BS_DrawRoutine for large heights */
  250.   LONG   prvScreenSize;      /* Size of destination plane */
  251.   WORD   prvModulo;          /* Bob Modulo (PicWidth-BobWidth) */
  252.   WORD   prvMaskModulo;      /* Mask Modulo (BobWidth-BobWidth for GENMASK) */
  253.   APTR   prvMaskMemory;      /* Master mask pointer (for the freemem) */
  254.   WORD   prvMaxHeight;       /* Maximum possible height, limited by blitter */
  255.   WORD   prvScrLine;         /* Size of a line (for interleaved) */
  256.   WORD   prvBobLine;         /* Size of a Bob line (Width*Planes) */
  257.   WORD   prvMaskLine;        /* Size of a Mask Line (Width*Planes) */
  258.   WORD   prvTrueWidth;       /* The true pixel width (++shift) */
  259.   WORD   prvTrueBWidth;      /* The true byte width (++shift) */
  260.   WORD   prvTrueWWidth;      /* The true word width (++shift) */
  261.   WORD   prvClipBLX;         /* ClipLX, byte */
  262.   WORD   prvClipBRX;         /* ClipRX, byte */
  263.   WORD   prvModuloC;         /* Modulus (C) */ 
  264.   WORD   prvModuloB;         /* Modulus (B) */ 
  265.   WORD   prvModuloA;         /* Modulus (A) */
  266.   WORD   prvModuloD;         /* Modulus (D) */
  267.   WORD   prvNSModuloC;       /* NSModulus (C) */ 
  268.   WORD   prvNSModuloB;       /* NSModulus (B) */ 
  269.   WORD   prvNSModuloA;       /* NSModulus (A) */ 
  270.   WORD   prvNSModuloD;       /* NSModulus (D) */ 
  271.   WORD   prvWordWidth;       /* The word width */
  272.   BYTE   prvAFlags;          /* Allocation flags */
  273.   BYTE   prvPad;             /* Empty */
  274.   struct GScreen *prvScreen; /* Destination Screen (Private) */
  275.   BYTE   *prvMaskData;
  276.   WORD   prvSrcWidth;         /* Source Page Width in bytes */
  277.   WORD   prvSrcMaskWidth;     /* Mask page width in bytes */
  278. } OBJBob;
  279.  
  280. #define BBA_GfxCoords    (20|TAPTR)
  281. #define BBA_Frame        (24|TWORD)
  282. #define BBA_Width        (28|TWORD)
  283. #define BBA_XCoord       (32|TWORD)
  284. #define BBA_YCoord       (34|TWORD)
  285. #define BBA_Height       (36|TWORD)
  286. #define BBA_ClipLX       (38|TWORD)
  287. #define BBA_ClipTY       (40|TWORD)
  288. #define BBA_ClipRX       (42|TWORD)
  289. #define BBA_ClipBY       (44|TWORD)
  290. #define BBA_FPlane       (46|TWORD)
  291. #define BBA_Planes       (48|TWORD)
  292. #define BBA_PropHeight   (50|TWORD)
  293. #define BBA_PropWidth    (52|TWORD)
  294. #define BBA_Buffers      (54|TWORD)
  295. #define BBA_Attrib       (60|TLONG)
  296. #define BBA_SrcBitmap    (64|TAPTR)
  297. #define BBA_Source       (72|TAPTR)
  298. #define BBA_MaskCoords   (84|TAPTR)
  299. #define BBA_MaskBitmap   (92|TAPTR)
  300.  
  301. #define BBA_SourceTags   (TSTEPIN|TTRIGGER|72)
  302.  
  303. /***********************************************************************************/
  304.  
  305. #define VER_MBOB  1
  306. #define TAGS_MBOB ((ID_SPCTAGS<<16)|ID_MBOB)
  307.  
  308. typedef struct MBob {
  309.   struct Head Head;              /* [00] Standard structure header */
  310.   APTR   emp1;                   /* [12] */
  311.   APTR   emp2;                   /* [16] */
  312.   struct FrameList *GfxCoords;   /* [20] Pointer to graphics frame list */
  313.   WORD   AmtEntries;             /* [24] Amount of entries in the list */
  314.   WORD   emp3;                   /* [26] */
  315.   WORD   Width;                  /* [28] Width in pixels (optional) */
  316.   WORD   ByteWidth;              /* [30] Width in bytes */
  317.   struct MBEntry *EntryList;     /* [32] :MB: Pointer to entry list */
  318.   WORD   Height;                 /* [36] Height in pixels */
  319.   WORD   ClipLX;                 /* [38] Left X border */
  320.   WORD   ClipTY;                 /* [40] Top Y border */
  321.   WORD   ClipRX;                 /* [42] Right X border */
  322.   WORD   ClipBY;                 /* [44] Bottom Y border */
  323.   WORD   FPlane;                 /* [46] 1st Plane to blit to (planar only) */
  324.   WORD   Planes;                 /* [48] Amount of planes */
  325.   WORD   PropHeight;             /* [50] Expected height of source picture */
  326.   WORD   PropWidth;              /* [52] Expected width of source picture */
  327.   WORD   Buffers;                /* [54] Relevent only to restore mode */
  328.   LONG   PlaneSize;              /* [56] Size of source plane (planar only) */
  329.   LONG   Attrib;                 /* [60] Attributes like CLIP and MASK */
  330.   struct Bitmap *SrcBitmap;      /* [64] Source Bitmap */
  331.   WORD   EntrySize;              /* [68] Entry size (sizeof(struct MBEntry)) */
  332.   WORD   emp4;                   /* [70] */
  333.   APTR   Source;                 /* [72] Pointer to source object */
  334.   LONG   *DirectGfx;             /* [76] Pointer to direct frame list (R) */
  335.   struct Bitmap    *DestBitmap;  /* [80] The MBob's destination Bitmap */
  336.   struct FrameList *MaskCoords;  /* [84] Pointer to masks frame list */
  337.   LONG   *DirectMasks;           /* [88] Pointer to direct frame list (R) */
  338.   struct Bitmap *MaskBitmap;     /* [92] */
  339.   WORD   AmtFrames;              /* [96] Amount of frames in frame/direct list */
  340.  
  341.   /*** Private fields start now ***/
  342.  
  343.   WORD   prvStoreSize;        /* 4/8/12 Sizeof one store entry (MBob's) */
  344.   APTR   prvStoreBuffer;      /* A/B/C [0/4/8] storage pointer (MBob's) */
  345.   WORD   prvStoreMax;         /* Maximum store position */
  346.   APTR   prvStoreMemory;      /* Master storage pointer (for the freemem) */
  347.   WORD   prvStoreCount;       /* Counter for store, 0, 4, 8 */
  348.   APTR   prvStoreA;           /* Storage buffer 1 */
  349.   APTR   prvStoreB;           /* Storage buffer 2 */
  350.   APTR   prvStoreC;           /* Storage buffer 3 */
  351.   APTR   prvDrawRoutine;      /* Routine for drawing/clearing/storing */
  352.   APTR   prvClearRoutine;     /* Routine for clearing */
  353.   APTR   prvRestoreRoutine;   /* Routine for restoring/clearing */
  354.   APTR   prvHeightRoutine;    /* Replaces BS_DrawRoutine for large heights */
  355.   LONG   prvScreenSize;       /* Size of destination plane */
  356.   WORD   prvModulo;           /* Bob Modulo (PicWidth-BobWidth) */
  357.   WORD   prvMaskModulo;       /* Mask Modulo (BobWidth-BobWidth for GENMASK) */
  358.   APTR   prvMaskMemory;       /* Master mask pointer (for the freemem) */
  359.   WORD   prvMaxHeight;        /* Maximum possible height, limited by blitter */
  360.   WORD   prvScrLine;          /* Size of a line (for interleaved) */
  361.   WORD   prvBOBLine;          /* Size of a Bob line (Width*Planes) */
  362.   WORD   prvMaskLine;         /* Size of a Mask Line (Width*Planes) */
  363.   WORD   prvTrueWidth;        /* The true pixel width (++shift) */
  364.   WORD   prvTrueBWidth;       /* The true byte width (++shift) */
  365.   WORD   prvTrueWWidth;       /* The true word width (++shift) */
  366.   WORD   prvClipBLX;          /* ClipLX, byte */
  367.   WORD   prvClipBRX;          /* ClipRX, byte */
  368.   LONG   prvModulo1;          /* Modulus (C/B) */ 
  369.   LONG   prvModulo2;          /* Modulus (A/D) */ 
  370.   LONG   prvNSModulo1;        /* Modulus (C/B) */ 
  371.   LONG   prvNSModulo2;        /* Modulus (A/D) */ 
  372.   WORD   prvWordWidth;        /* The word width */
  373.   BYTE   prvAFlags;           /* Allocation flags */
  374.   BYTE   prvPad;              /* Empty */
  375.   struct GScreen *prvScreen;  /* The MBob's destination Screen */
  376.   BYTE   *prvMaskData;
  377.   WORD   prvSrcWidth;         /* Source Page Width in bytes */
  378.   WORD   prvSrcMaskWidth;     /* Mask page width in bytes */
  379. } OBJMBob;
  380.  
  381. #define MBA_GfxCoords    (20|TAPTR)
  382. #define MBA_AmtEntries   (24|TWORD)
  383. #define MBA_Width        (28|TWORD)
  384. #define MBA_EntryList    (32|TAPTR)
  385. #define MBA_Height       (36|TWORD)
  386. #define MBA_ClipLX       (38|TWORD)
  387. #define MBA_ClipTY       (40|TWORD)
  388. #define MBA_ClipRX       (42|TWORD)
  389. #define MBA_ClipBY       (44|TWORD)
  390. #define MBA_FPlane       (46|TWORD)
  391. #define MBA_Planes       (48|TWORD)
  392. #define MBA_PropHeight   (50|TWORD)
  393. #define MBA_PropWidth    (52|TWORD)
  394. #define MBA_Buffers      (54|TWORD)
  395. #define MBA_Attrib       (60|TLONG)
  396. #define MBA_SrcBitmap    (64|TAPTR)
  397. #define MBA_EntrySize    (68|TWORD)
  398. #define MBA_Source       (72|TAPTR)
  399. #define MBA_MaskCoords   (84|TAPTR)
  400. #define MBA_MaskBitmap   (92|TAPTR)
  401.  
  402. /***************************************************************************/
  403.  
  404. typedef struct MBEntry {        /* MBob Entry Structure */
  405.   WORD XCoord;
  406.   WORD YCoord;
  407.   WORD Frame;
  408. } OBJMBEntry;
  409.  
  410. #define MBE_SIZEOF (sizeof(struct MBEntry))
  411.  
  412. /* Bob Attributes (Bob.Attrib) */
  413.  
  414. #define BBF_CLIP      0x00000001 /* Allow border clipping */
  415. #define BBF_MASK      0x00000002 /* Allow masking */
  416. #define BBF_STILL     0x00000004 /* This bob is not moving */
  417. #define BBF_CLEAR     0x00000008 /* Allow automatic clearing */
  418. #define BBF_RESTORE   0x00000010 /* Allow automatic background restore */
  419. /*#define           0x00000020   */
  420. #define BBF_FILLMASK  0x00000040 /* Fill any holes in the mask on generation */
  421. #define BBF_GENONLY   0x00000080 /* Create masks but do not use them yet */
  422. #define BBF_GENMASKS  0x00000082 /* Create and use masks for drawing this bob */
  423. #define BBF_CLRMASK   0x00000100 /* Use masks when clearing */
  424. #define BBF_CLRNOMASK 0x00000000 /* Do not use masks when clearing (default) */
  425.  
  426. #define BBF_GENMASK BBF_GENMASKS /* Synonym */
  427.  
  428. #define SKIPIMAGE 32000
  429.  
  430. /****************************************************************************
  431. ** Pixel list structures.
  432. */
  433.  
  434. typedef struct PixelEntry {
  435.   WORD XCoord;
  436.   WORD YCoord;
  437.   LONG Colour;
  438. } OBJPixelEntry;
  439.  
  440. typedef struct PixelList {
  441.   WORD   AmtEntries;
  442.   WORD   EntrySize;
  443.   struct PixelEntry *Pixels;
  444. } OBJPixelLIst;
  445.  
  446. #define SKIPPIXEL -32000
  447. #define PIXELLIST(a)
  448.  
  449. /***************************************************************************/
  450.  
  451. #define BSORT_X         0x00000001
  452. #define BSORT_Y         0x00000002
  453. #define BSORT_DOWNTOP   0x00000004  /* From Bottom to top */
  454. #define BSORT_RIGHTLEFT 0x00000008  /* Right to Left */
  455. #define BSORT_LEFTRIGHT 0x00000000  /* Default */
  456. #define BSORT_TOPDOWN   0x00000000  /* Default */
  457.  
  458. #endif /* GRAPHICS_BLITTER_H */
  459.